/**
 * 
 */
package com.nari.interfaces.dao.springjdbc;

import java.util.Date;
import java.util.List;

import com.nari.coreframe.dao.springjdbc.IAbstractDao;
import com.nari.interfaces.model.IHeatMeterData24Gather;
import com.nari.interfaces.utils.queryvo.HeatMeterData24RealtimeStatis;
import com.nari.platform.model.PageCond;
import com.nari.platform.model.ResultWithPageCond;

/**
 * 
 * @author Xiaopeng
 * @date 2015-1-14
 */
public interface IHeatMeterData24GatherJdbcDao extends IAbstractDao {

	/**
	 * 根据热量表表号、抄表时间查询热量表唯一标识
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-14
	 */
	public String queryMeterDataUID(String meterNo, Date recordTime) throws Exception;
	
	/**
	 * 查询可用于数据抽取任务的热量表表号列表
	 * @param extractRecordTime 数据抽取任务的抄表日期
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-20
	 */
	public List<String> queryAvailableExtractMeterNo(Date extractRecordTime) throws Exception;
	
	/**
	 * 根据热表表号、抄表日期从分时集抄数据中抽取一条热量表数据
	 * 抽取规则：取累计热量为最大值的一条数据
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-20
	 */
	public IHeatMeterData24Gather queryAvailableExtractMeterData(String meterNo, 
			Date recordTime) throws Exception;
	
	/**
	 * 分页查询热量表分时数据的统计列表
	 * @param meterNo
	 * @param recordTimeStart
	 * @param recordTimeEnd
	 * @param pageCond
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-21
	 */
	public ResultWithPageCond<HeatMeterData24RealtimeStatis> queryMeterDataStatis(String meterNo, 
			Date recordTimeStart, Date recordTimeEnd, PageCond pageCond) throws Exception;
	
	/**
	 * 根据热量表表号、抄表日期查询热量表分时数据的统计详细信息
	 * @param meterNo
	 * @param recordTime
	 * @return
	 * @throws Exception
	 * @author Xiaopeng
	 * @date 2015-1-22
	 */
	public HeatMeterData24RealtimeStatis queryMeterDataStatisDetail(String meterNo, 
			Date recordTime) throws Exception;
}
